package com.hzit.boot.service.impl;

import com.hzit.boot.entity.Classes;
import com.hzit.boot.mapper.ClassesMapper;
import com.hzit.boot.service.ClassesService;
import net.bytebuddy.asm.Advice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 类名：
 * 作者：WF
 * 功能：
 */
@Service
public class ClassesServiceImpl implements ClassesService {
	@Autowired
	private ClassesMapper classesMapper;
	@Autowired
	private RedisTemplate redisTemplate;

	/**
	 * 1. 查询所有班级
	 * 原理：
	 *    首先从redis中取数据，如果没有再从数据库取，然后再放到redis中
	 * @return
	 */
	@Override
	public List<Classes> findAll() {
		//1.1 从redis中取得班级列表
		List<Classes> classesList = (List<Classes>) redisTemplate.opsForValue().get("classesList");
		//1.2 判断是否存在
		if(classesList == null || classesList.size() == 0){
			//1.2.1 如果在redis中不存在班级列表，就从数据库中取
			classesList = classesMapper.selectAll();
			//1.2.2 再将其放到redis中
			redisTemplate.opsForValue().set("classesList",classesList);
			System.out.println("从数据库取数据。。。");
		}
		//1.3 返回
		return classesList;
	}
}
